eeaa3e01235c98421fecc46eaed877b207fb5a33,src/java/org/apache/cassandra/streaming/StreamTransferTask.java,StreamTransferTask,complete,#number#,62
Before Change
public synchronized void complete(int sequenceNumber)
{
OutgoingFileMessage file = files.remove(sequenceNumber);
if (file != null)
{
file.sstable.releaseReference();
// all file sent, notify session this task is complete.
if (files.isEmpty())
{
timeoutExecutor.shutdownNow();
session.taskCompleted(this);
}
}
}
After Change
public void complete(int sequenceNumber)
{
boolean signalComplete;
synchronized (this)
{
ScheduledFuture timeout = timeoutTasks.remove(sequenceNumber);
if (timeout != null)
timeout.cancel(false);
OutgoingFileMessage file = files.remove(sequenceNumber);
if (file != null)
file.sstable.releaseReference();
signalComplete = files.isEmpty();
}
// all file sent, notify session this task is complete.
if (signalComplete)
session.taskCompleted(this);
}
public synchronized void abort()